1. Technical Field
The present invention relates in general to designing and simulating digital devices, modules and systems, and in particular, to a method and system for computer simulation of digital devices, modules and systems utilizing a hardware description language (HDL) model. More particularly, the present invention relates to a method and system for reducing storage requirements of simulation result data utilizing keyword restrictions.
2. Description of the Related Art
Verifying the logical correctness of a digital design and debugging the design, if necessary, are very important steps in most digital design processes. Logic networks are tested either by actually building networks or by simulating networks on a computer. As logic networks become highly complex, it becomes necessary to simulate a design before the design is actually built. This is especially true when the design is implemented as an integrated circuit, since the fabrication of integrated circuits requires considerable time and correction of mistakes is quite costly. The goal of digital design simulation is the verification of the logical correctness of the design.
In a typical automated design process that is supported by a conventional electronic computer-aided design (ECAD) system, a designer enters a high-level description utilizing a hardware description language (HDL), such as VHDL, producing a representation of the various circuit blocks and their interconnections. The ECAD system compiles the design description into a format that is best suited for simulation. A simulator is then utilized to verify the logical correctness of the design prior to developing a circuit layout.
A simulator is typically a software tool that operates on a digital representation, or simulation model of a circuit, and a list of input stimuli representing inputs of the digital system. A simulator generates a numerical representation of the response of the circuit, which may then either be viewed on the display screen as a list of values or further interpreted, often by a separate software program, and presented on the display screen in graphical form. The simulator may be run either on a general-purpose computer or on another piece of electronic apparatus, typically attached to a general purpose computer, specially designed for simulation. Simulators that run entirely in software on a general-purpose computer will hereinafter be referred to as “software simulators”. Simulators that are run with the assistance of specially designed electronic apparatus will hereinafter be referred to as “hardware simulators”.
Usually, software simulators perform a very large number of calculations and operate slowly from the user's point of view. In order to optimize performance, the format of the simulation model is designed for very efficient use by the simulator. Hardware simulators, by nature, require that the simulation model comprising the circuit description be communicated in a specially designed format. In either case, a translation from an HDL description to a simulation format, hereinafter referred to as a simulation executable model, is required.
The results obtained from running a simulation testcase against a simulation model may vary depending upon not only factors within the simulation model, but also factors outside of the simulation model. These external factors may include, for example, those controlling the set up of the simulation model or characteristics of the testcase.
A particular example of an external factor that influences simulation results is testcase strategy. In order to exercise complex simulation models, such as those simulating the logical behavior of microprocessors, testcases are commonly generated by testcase generation software having hundreds or thousands of different input parameters. Each set of testcases created from a menu of common input parameter values is called a testcase strategy. In order to achieve sufficient test coverage, the testcase generation software may generate testcases representing tens of thousands of different testcase strategies.
Understandably, simulation engineers are very interested in determining which testcase strategies provide the most useful simulation results so that the less helpful strategies can be eliminated and the bulk of simulation jobs can be performed utilizing testcases generated utilizing the better testcase strategies. In order to determine which testcase strategies are preferred, it is helpful if simulation engineers can view simulation results by testcase strategy.
One method of supporting this functionality is to build into the simulation model a separate set of event counters for each possible value of each external factor (e.g., testcase strategy) of interest. Then when simulation is performed, the value of the external factor can be supplied to the model as an input parameter, and the events detected during the simulation can be recorded in the appropriate set of counters. As can be seen from the example of testcase strategy, this approach would quickly lead to an unwieldy simulation model with possibly thousands of duplicate counter sets. Consequently, this approach to viewing simulation results based upon the value of selected external factors is impractical for most simulation environments. The present invention therefore recognizes that it would be useful and desirable to provide an improved method and apparatus for simulating a digital design that permit simulation results to be viewed based upon the value(s) of selected external factor(s).
The present invention also recognizes that tracking simulation data results by reference to external factors can lead to undesirably large data storage requirements. For example, assuming a simulation model having 10 external factors each having 10 possible values, simulation data may have to be separately tracked for at least 1010 different combinations of external factors and values. And if simulation result data for each day are separately recorded, tracking of simulation result data by reference to external factors and values could potentially result in the creation of 1010 separate data storage files per day. Even if in practice such a large number of simulation runs could not be performed in one day, the storage requirements of a simulation environment can become onerous unless measures are taken to restrict the number of external factors and values.